<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of UserValidator
 *
 * @author USUARIO
 */
class UserValidator {


    //el primer parametro puede ser el id o el nombre, el segungo parametro es el tipo de busqueda
    //con lo cual manejara la busqueda.
    public function UserExists($value = null , $type_search="id"){

            if($value!=null){
                $criterio_busqueda = new Criteria();
                if($type_search=="id"){
                   $criterio_busqueda->add(UsuarioPeer::ID, $value);
                   $userBean = UsuarioPeer::doSelectOne($criterio_busqueda);
                   if(is_object($userBean)){
                      return array("success"=>true,"message" =>"{UserExists} => success" , "object" => $userBean);
                   }else{
                      return array("success"=>false,"message" =>"{UserExists} => objeto no encontrado");
                   }
                }elseif($type_search=="email"){
                   $criterio_busqueda->add(UsuarioPeer::EMAIL, $value);
                   $userBean = UsuarioPeer::doSelectOne($criterio_busqueda);
                   if(is_object($userBean)){
                      return array("success"=>true,"message" =>"{UserExists} => success" , "object" => $userBean);
                   }else{
                      return array("success"=>false,"message" =>"{UserExists} => objeto no encontrado");
                   }
                }else{
                    return array("success"=>false,"message" =>"{UserExists} => parametro invalido!");
                }
            }else{
                return array("success"=>false,"message" =>"{UserExists} => parametro invalido");
            }

    }

    //aca los parametros que recibe son el id del usuario y de plataforma 
    public function  UserExistsPlatform($userValue=null,$plataformaValue=null){
        
        if($userValue!=null && $plataformaValue != null){
               $validatorPlatform         = new PlatformValidator();
               //en este caso como recibo los id, la busqueda es por id
               $success_userBean          = $this->UserExists($userValue,'id');
               $success_platformBean      = $validatorPlatform->PlatformExists($plataformaValue,'id');

               //si encuentro los dos resultados 
               if($success_userBean['success'] && $success_platformBean['success']){
                   //como las validaciones tambien me devuelven el objeto los inicializo
                   $userBean          = $success_userBean['object'];
                   $platformBean      = $success_platformBean['object'];
                   //busco si el usuario esta en esta plataforma
                    if($userBean->getPlataforma()!=""){
                        $lista = explode('-',$userBean->getPlataforma());
                        for($i=0 ; $i<count($lista) ; $i++){
                                if($lista[$i]==$platformBean->getId()){
                                     return array("success"=>true,"message" =>"{UserExistsPlatform} => success", "object"=>array("userBean" =>$userBean,"plataformaBean" =>$platformBean  ) );
                                }
                        }
                         return array("success"=>false,"message" =>"{UserExistsPlatform} => no existe en plataforma" );
                    }else{
                         return array("success"=>false,"message" =>"{UserExistsPlatform} => no existe en plataforma" );
                    }
               }else{
                    return array("success"=>false,"message" =>"{UserExistsPlatform} =>{ ".$success_userBean['message'].' => '.$success_platformBean['message'].' }');
               }
        }else{
             return array("success"=>false,"message" =>"{UserExistsPlatform} => parametros invalidos");
        }
    }


}
?>
